package com.im.project.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.im.project.entity.Cluster;
import com.im.project.entity.dto.AddOrRemoveClusterUserDto;
import com.im.project.entity.dto.ClusterIdDto;
import com.im.project.entity.dto.CreateClusterDto;
import com.im.project.entity.dto.UpdateClusterDto;
import com.im.project.entity.vo.ClusterUserChatVo;
import com.im.project.entity.vo.ClusterVo;
import com.im.project.entity.vo.MyClusterVo;
import com.im.project.entity.vo.SearchGroupVo;

import java.util.List;

/**
 * 群组 服务层接口
 *
 * @author yunZhouJiaDi
 */
public interface ClusterService extends IService<Cluster> {

    Boolean createCluster(CreateClusterDto createClusterDto);

    List<SearchGroupVo> queryGroup(String searchKey);

    List<Cluster> queryCurrentClusterList();

    List<MyClusterVo> queryGroupListByUserId();

    ClusterVo queryClusterByClusterId(String clusterId);

    Boolean updateCluster(UpdateClusterDto updateClusterDto);

    Boolean leaveCluster(ClusterIdDto clusterIdDto);

    Boolean dissolutionCluster(ClusterIdDto clusterIdDto);

    ClusterUserChatVo queryClusterUserChatByClusterId(String clusterId);

    Boolean addClusterUsers(AddOrRemoveClusterUserDto addOrRemoveClusterUserDto);

    Boolean delClusterUser(AddOrRemoveClusterUserDto addOrRemoveClusterUserDto);

}
